static PyObject* unsafe_sqrt(PyObject* self, PyObject* args);

static PyObject* v3_cos_theta(PyObject* self, PyObject* args);

static PyObject* v3_pt2(PyObject *self, PyObject *args);

static PyObject* v3_pt2_single_axis(PyObject *self, PyObject *args);

static PyObject* v3_unit(PyObject *self, PyObject *args);

static PyObject* v3_angle(PyObject *self, PyObject *args);

static PyObject* v3_eta(PyObject *self, PyObject *args);

static PyObject* v3_rotate_x(PyObject *self, PyObject *args);

static PyObject* v3_rotate_y(PyObject *self, PyObject *args);

static PyObject* v3_rotate_z(PyObject *self, PyObject *args);

static PyObject* v4_et2(PyObject *self, PyObject *args);
static PyObject* v4_et2_single_axis(PyObject *self, PyObject *args);
static PyObject* v4_et2_multi_axis(PyObject *self, PyObject *args);
static PyObject* v4_boost_onevec(PyObject *self, PyObject *args);
static PyObject* v4_boost_arr(PyObject *self, PyObject *args);
static PyObject* v4_gamma(PyObject *self, PyObject *args);


double svc_v3_mag(double x, double y, double z);

double svc_v3_mag2(double x, double y, double z);

double svc_v3_dot(double x1, double y1, double z1, 
		  double x2, double y2, double z2);

double svc_v3_cos_theta(double x, double y, double z);

double **npy2cptr_2d(PyArrayObject *arrayin);

double **ptrvector(long n);

